<?php


namespace app\common\logic;


use think\facade\Request;

class CommonLogic {

    /**
     * desription 压缩图片
     * @param sting $imgsrc 图片路径
     * @param string $imgdst 压缩后保存路径
     */
    public function compressedImage($imgsrc) {
        $ext=strrchr($imgsrc,'.');
        $imgdst = explode($ext,$imgsrc)[0].'_small'.$ext;
        $imgdst =  parse_url($imgdst)['path'];
        $imgdst = substr($imgdst,1);
        if(strpos($imgdst,'static')){
            $imgdst = 'static'.substr($imgdst, strripos($imgdst, "static") + 6);
        }else{
            $imgdst = 'storage'.substr($imgdst, strripos($imgdst, "storage") + 7);
        }
        if(file_exists($imgdst)){
            return $imgdst;
        }
        $imgsrc = cdnurl($imgsrc);
        list($width, $height, $type) = getimagesize($imgsrc);
        $new_width = $width>300?300:$width;//图片宽度的限制
        $new_height =$height>300?ceil($height*300/$width):$height;//自适应匹配图片高度
        switch ($type) {
            case 1:
                $giftype = $this->check_gifcartoon($imgsrc);
                if ($giftype) {
                    header('Content-Type:image/gif');
                    $image_wp = imagecreatetruecolor($new_width, $new_height);
                    $image = imagecreatefromgif($imgsrc);
                    imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                    //90代表的是质量、压缩图片容量大小
                    imagejpeg($image_wp, $imgdst, 90);
                    imagedestroy($image_wp);
                    imagedestroy($image);
                }
                break;
            case 2:
                header('Content-Type:image/jpeg');
                $image_wp = imagecreatetruecolor($new_width, $new_height);
                $image = imagecreatefromjpeg($imgsrc);
                imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                //90代表的是质量、压缩图片容量大小
                imagejpeg($image_wp, $imgdst, 90);
                imagedestroy($image_wp);
                imagedestroy($image);
                break;
            case 3:
                header('Content-Type:image/png');
                $image_wp = imagecreatetruecolor($new_width, $new_height);
                $image = imagecreatefrompng($imgsrc);
                imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                //90代表的是质量、压缩图片容量大小
                imagejpeg($image_wp, $imgdst, 90);
                imagedestroy($image_wp);
                imagedestroy($image);
                break;
        }
        return $imgdst;
    }

    /**
     * desription 判断是否gif动画
     * @param sting image_file图片路径
     * @return boolean t 是 f 否
     */

    private function check_gifcartoon($image_file){
        $fp = fopen($image_file,'rb');
        $image_head = fread($fp,1024);
        fclose($fp);
        return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head)?false:true;
    }


    public function getLongTitle($title,$keyword){

        $longtitle = '《'.trim($title).'》'.$keyword;

        if($keyword=='全新版本今日全新上线！开区狂欢，上线即送顶赞！真散人天堂！（附特权礼包码）'){
            $longtitle = '《'.trim($title).'》全新版本新服！开服狂欢，上线即送顶赞！（附特权礼包码）';
        }

        if($keyword=='超人气版本新服！新服狂欢，上线即送顶赞！（附特权礼包码）'){
            $longtitle = '《'.trim($title).'》散人微氪轻松过秒大佬攻略！（附特权礼包码';
        }
        return $longtitle;
    }
}